What is CTF?
在資訊安全領域中,CTF 是一種常見的駭客攻防競賽形式,CTF 是 "Capture The Flag" 的縮寫,意指「奪旗賽」。參賽者透過解決各式各樣的安全挑戰來獲得稱作「flag」的答案,並以此來累積分數。CTF 通常分為以下 2 3 種類型:
參賽者面對各種單獨的挑戰,如漏洞利用、密碼學破解、程式逆向等。每個挑戰都有其對應的分數,解題越多,累積的分數越高。不過,隨著解開該題的人數增多,題目的分數會逐漸下降,因此越早解題的參賽者能獲得更高的分數,讓比賽更加緊張和具挑戰性。
這種比賽模式強調團隊合作,參賽者需保護自己伺服器的安全,並同時嘗試攻擊對手的伺服器,搶奪對方的「flag」。若關閉自己的服務,該隊伍的分數將被平分給其餘隊伍,這樣的機制要求隊伍在攻防之間取得平衡,以確保自身服務正常運作的同時,也能積極發動攻擊。
這種模式比較少見,參賽者需占領服務,並以占領時間長短來計算分數,最終分數高者獲勝。考驗隊伍的長期防禦和穩定攻擊能力。
Web:
Web 類型的題目聚焦於網站應用程式的漏洞分析。參賽者需要發現並利用網站的弱點,例如 SQL/Command Injection、跨站腳本(XSS)、RCE、Cookie 等,來取得 flag。
Reverse:
逆向工程題目需要參賽者分析程式的運行邏輯,並找出隱藏在其中的數據或破解保護機制,以取得 flag。這通常涉及反編譯或反組譯,參賽者需要瞭解程式的底層運作方式。
Pwn:
這類題目主要是程式漏洞利用,特別是記憶體相關的問題。參賽者需分析緩衝區溢位等漏洞,進而取得對系統的控制權拿到 flag,需要程式語言底層知識。
Crypto:
破解加密演算法,解讀被加密的訊息。常見的題目包括對稱加密、非對稱加密及古典加密技術的破解。以及各種奇怪的 cipher。
Forensics:
參賽者需從各種資料中找出隱藏的線索與關鍵證據。資料可能包括封包(Packet)、系統日誌(Log)、記憶體映像(Memory Dump)、以及虛擬機器映像檔(VM Image)等。還原遭到篡改、刪除或加密的資訊,找到隱藏在其中的 flag。
Misc:
無法歸類至剛剛上面提到的五種分類,會被放在這邊,涵蓋範圍廣泛,可能結合了上面 2 種或更多的大雜燴,或是圖片隱寫等奇奇怪怪的玩法,通靈還不一定通的出來的題目。
因為這幾個月常常到各 CTF 比賽上當韭菜,常常整場比賽下來只解了一題 or 抱蛋。所以接下來的日子裡,想先從基礎好好打起,在 picoCTF 上練一些題目,紀錄一些解題過程和學題目有關的小知識。如果鐵人賽進行的過程中有參加到一些 CTF 比賽,也會記錄在這邊。
內文如有錯誤,還請不吝指教~